
Create PROC [dbo].[SubsidyUpdateReverseCredit]
    @TmpId NUMERIC(18, 0),
    @OrderTrace VARCHAR(15),
	@KindSubsidyResult BIT=0
AS
DECLARE @id BIGINT = ISNULL(SCOPE_IDENTITY(), 0);
BEGIN TRY
    BEGIN TRAN;
    
IF @KindSubsidyResult = 0 
begin
	DELETE FROM dbo.Tmp_Over_Under_Factor WHERE Id_Havaleh=@TmpId AND ShowPrice=4
	UPDATE dbo.SubsidyHeader SET levelNumber=6 WHERE IdHavaleh=@TmpId AND OrderTrace=@OrderTrace
	UPDATE tmpheadh SET Tot_Kahandeh=0,Number_bar='' ,items=0 WHERE Id_Havaleh=@TmpId
	UPDATE tmphavaleh SET Status=NULL WHERE Id_Havaleh=@TmpId AND ISNULL(Status,0)=7
	END
	IF @KindSubsidyResult=1 
	BEGIN
	  DECLARE @IdSubSidyHeader UNIQUEIDENTIFIER 
      set @IdSubSidyHeader=(SELECT id FROM SubsidyHeader WITH(nolock) WHERE  (IdHavaleh=@TmpId) AND (OrderTrace=@OrderTrace)  )

	  UPDATE SubsidyHeader SET id=t1.id,levelNumber=7,IdHavaleh=t1.id_havaleh
	  FROM dbo.SubsidyHeader WITH(nolock) INNER JOIN 
	  ( SELECT * FROM headh WITH(nolock) WHERE (Number_bar=@OrderTrace) AND (Items=-2 )and (nu_forosh= @TmpId) ) AS t1
	  ON t1.Nu_Forosh=SubsidyHeader.IdHavaleh
      WHERE IdHavaleh=@TmpId AND OrderTrace=@OrderTrace  
	
	  DECLARE  @IdSubSidyHeaderNew UNIQUEIDENTIFIER 
	   set @IdSubSidyHeaderNew=(SELECT id FROM SubsidyHeader WITH(nolock) WHERE  (OrderTrace=@OrderTrace) AND levelNumber=7 )
	   UPDATE dbo.SubsidyDetails SET SubsidyHeaderId=@IdSubSidyHeaderNew WHERE SubsidyHeaderId=@IdSubSidyHeader

    END; 
    COMMIT TRAN;
    RETURN @id;
END TRY
BEGIN CATCH
    ROLLBACK TRAN;
    SET @id = -1;
    RETURN @id;
END CATCH;


